Conventional memory systems use un-buffered or registered DIMMs that are connected by means of a stub bus, in which the memory modules are connected to a single channel. When the number of modules in the channel increases, the channel performance decreases and thus limits the performance of the memory system.
To increase the performance of the dynamic random access memory (DRAM) system of a computer system, the technology of Fully Buffered Dual In-line Memory Module (FB-DIMM) has been developed.
FB-DIMM technology uses high-speed, serial, point-to-point connections between memory modules and the memory controller. The host memory controller is connected to a first memory module; and a first memory module is connected to a second memory module; etc. Thus, the load of each link is constant. No branch is needed in this type of point-to-point connection. The memory modules operate at a constant load environment regardless of the number of memory modules used in the system.
Advanced Memory Buffer (AMB) is a portion of a FB-DIMM which provides the point-to-point link in the memory system. Typically, each FB-DIMM has an advanced memory buffer (AMB), which handles FB-DIMM channel and memory requests to and from the local FB-DIMM and forwards the requests to other FB-DIMMs. Such architecture can be used to design large-capacity and high-bandwidth memory subsystems for servers and workstations.
An AMB typically includes two serial ports and a parallel port. One of the serial port is for connecting to the host memory controller or the AMB of the adjacent memory module that is closer to the host memory controller; the other serial port is for connecting to the AMB of the adjacent memory module that is further away from the host memory controller; and the parallel port is for connecting to the bus to the memory chips that are on the same memory module as the AMB.
For example, serial data from the host memory controller sent through a downstream serial link to the AMB is temporarily buffered in the AMB before being sent to the DRAM chips on the memory module. The serial data contains the address, data and command information, which is converted to parallel data in the AMB and placed onto the DRAM bus on the memory module. The AMB writes in and reads out from DRAM chips as instructed by the memory controller. The data retrieved from the DRAM is converted to serial data in the AMB and sent to the memory controller through an upstream serial link.